When computer systems boot up today, there are a plurality of entities contending for a variety of system resources. Some of these entities include basic input output system (“BIOS”) routines, device drivers for add-in devices (e.g., video card driver, network interface card driver, hard disk driver, CD-ROM driver, etc.), an operating system (“OS”), and the like. All of these entities are vying for finite system resources such as non-volatile random access memory (“NVRAM”), system random access memory (“RAM”), disk space, central processor unit (“CPU”) runtime, and the like.
To date, there is no mechanism to prevent a rogue entity from consuming all of any one these system resources. Once a rogue entity has consumed all of a particular system resource, entities downstream (later in time) will no longer have access to the consumed system resource. Such an occurrence can lead to overall system instability issues or simply prevent a desired device driver from operating.
These rogue entities may be maliciously programmed entities such as computer viruses, which the programmer intends to cause denial-of-service attacks against the system. A denial-of-service attack may lead to instability of the system and ultimately to a system crash. Alternatively, these rogue entities may be poorly programmed and poorly tested device drivers which are “hogging” one or more system resources. A poorly programmed device driver could be the result of an errant software allocation strategy of system resources. Or, a rogue entity may simply be a corrupted or otherwise malfunctioning device driver.
Resource-poor systems are particularly vulnerable to rogue entities. Resource-poor systems are economy computer systems which ship with limited system resources. For example, a resource-poor system may have a relatively small amount of system RAM, a relatively slow CPU, and/or limited non-volatile (“NV”) memory (e.g., read only memory (“ROM”), programmable read only memory (“PROM”), erasable programmable read only memory (“EPROM”), flash memory, disk drives, or tape drives). Because these economy computer systems ship with limited resources, an inefficiently programmed device driver could easily consume an unreasonable amount of any one of these system resources resulting in system instability.
Present systems have inadequate mechanisms, if any, to prevent rogue entities from consuming an unreasonable amount of system resources. Manufacturers of economy systems currently cannot ship these systems without worries of the adverse affect add-in devices may have on system stability and performance.